
/*
 * 测试版本程序
 *物料准备
 * alern2008@gmail.com
 * 2009-04-21
 */
Ext.onReady(function() {
	Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';// 处理ie提交中文乱码问题
	// 定义一个checkBox
	var sm = new Ext.grid.CheckboxSelectionModel({
		singleSelect : true
	});
	// 选中记录是否高亮显示
	sm.handleMouseDown = Ext.emptyFn;
	// 定义一个ColumnModel，表头中有N列
	/*
	 * SELECT
		a.ORG_ID,		a.DEPT_ID,		a.order_no,		a.ORDERED_DATE,		a.OPER_DATE,
		a.idt_client,		a.`user`,		a.usertel,		a.useraddress,		a.remark,
		a.ORDER_MONEY,		a.GOODSID,		a.goodsname,		a.spec,		a.SALE_PRICE,
		a.attrib1_unit,		a.attrib2,		a.attrib2_unit,		a.attrib3,		a.attrib3_unit,
		a.attrib4,		a.attrib4_unit,		a.attrib5,		a.attrib5_unit,		a.productdate,
		a.materielokpid,		a.materielokdate,		a.checkinstockpid,		a.checkinstockdate,
		a.tranfficpid,		a.setupdate,		a.setuppid,		a.tranfficdate,
		a.STATE,		a.customername,		a.line_id,		a.IDT_Salesorders_d,		a.attrib1
		FROM
		v_produce AS a
		order by a.customername
	 */
	var cm = new Ext.grid.ColumnModel([sm,  
    {header : '客户名称', dataIndex : 'customername'	}, 
    {header : '用户名称', dataIndex : 'user'	}, 
    {header : '订单号',   dataIndex : 'order_no'	}, 
    {header : '订货日期', dataIndex : 'ordered_date'}, 
    {header : '商品名称', dataIndex : 'goodsname'	}, 
    {header : '商品型号', dataIndex : 'spec',	width : 60},   
    {header : '备料人',   dataIndex : 'materielokpid',	width : 60},
    {header : '备料时间', dataIndex : 'materielokdate',	width : 60},    
    {header : '质检人',   dataIndex : 'checkinstockpid',	width : 60},
    {header : '质检时间', dataIndex : 'checkinstockdate',	width : 60},
    {header : '发货人',   dataIndex : 'tranfficpid',	width : 60},
    {header : '发货时间', dataIndex : 'tranfficdate',	width : 60},   
    {header : '安装人',   dataIndex : 'setuppid',	width : 60},
    {header : '安装时间', dataIndex : 'setupdate',	width : 60}, 
    {header : '门片数',	  dataIndex : 'attrib1'	}, 
    {header : '门片单位', dataIndex : 'attrib1_unit'}, 
    {header : '宽',		  dataIndex : 'attrib2'		}, 
    {header : '宽单位',	  dataIndex : 'attrib2_unit'}, 
    {header : '高',		  dataIndex : 'attrib3'		}, 
    {header : '高单位',	  dataIndex : 'attrib3_unit'}, 
    {header : '款式',     dataIndex : 'attrib4'	}, 
    {header : '款式单位', dataIndex : 'attrib4_unit'}, 
    {header : '属性',	  dataIndex : 'attrib5'}, 
    {header : '属性单位', dataIndex : 'attrib5_unit'} ,   
    {header : '交付日期',    dataIndex : 'request_date',width : 80},
    {header : '备注详情',     dataIndex : 'remark',renderer:renderDescn} ]);//
	cm.setHidden(1,!cm.isHidden(1));//隐码列
	cm.setHidden(16,!cm.isHidden(7));//隐码列
	cm.setHidden(17,!cm.isHidden(7));//隐码列
	cm.setHidden(18,!cm.isHidden(7));//隐码列
	cm.setHidden(19,!cm.isHidden(7));//隐码列
	cm.setHidden(20,!cm.isHidden(7));//隐码列
	cm.setHidden(21,!cm.isHidden(7));//隐码列
	cm.setHidden(22,!cm.isHidden(7));//隐码列
	cm.setHidden(23,!cm.isHidden(7));//隐码列
	cm.setHidden(24,!cm.isHidden(7));//隐码列
	cm.setHidden(25,!cm.isHidden(7));//隐码列
	cm.setHidden(26,!cm.isHidden(7));//隐码列	
	/*
	 * ArrayReader ds要对应两个部分：proxy和reader。proxy告诉我们从哪里获得数据，reader告诉我们如何解析这个数据。
	 * Ext.data.MemoryProxy，它是专门用来解析js变量的。你可以看到，我们直接把data作为参数传递进去了。
	 */
	var ds = new Ext.data.GroupingStore({
		baseParams : {
			trancode : '33990'
		},
		proxy : new Ext.data.HttpProxy({
			url : '../' + WebServiceUrl
		}),
		reader : new Ext.data.JsonReader({
			totalProperty : 'totalProperty',
			root : 'root'
		},  
        [{name : 'customername'}, 
		{name : 'user'		}, 
		{name : 'order_no'}, 
		{name : 'ordered_date'}, 
		{name : 'goodsname'}, 
		{name : 'spec'}, 
		{name : 'materielokpid'}, 
		{name : 'materielokdate'}, 
		{name : 'checkinstockpid'}, 
		{name : 'checkinstockdate'}, 
		{name : 'tranfficpid'}, 
		{name : 'tranfficdate'}, 
		{name : 'setuppid'}, 
		{name : 'setupdate'}, 
		{name : 'attrib1'},
		{name : 'attribunit1'},
		{name : 'attrib2'},
		{name : 'attribunit2'},
		{name : 'attrib3'},
		{name : 'attribunit3'},
		{name : 'attrib4'},
		{name : 'attribunit4'},
		{name : 'attrib5'},
		{name : 'attribunit5'},
        {name : 'request_date'},				
		{name : 'remark'}]),
		groupField:'customername'	,			
		sortInfo:{field:'customername',direction:"ASC"}	//,

		
	});

	/* 装配 */
	/*
	 * 注意：Ext.grid.Grid的第一个参数是渲染的id， 对应在html里应该有一个 <div id="grid"></div>的东西，这样grid才知道要把自己画到哪里。
	 * 创建完grid以后，还要用grid.render()方法，让grid开始渲染，这样才能显示出来。
	 */

	cm.defaultSortable = true; // 设置列可排序

	var grid = new Ext.grid.GridPanel({
		el : 'grid',
		ds : ds,
		cm : cm,
        view: new Ext.grid.GroupingView(),
		loadMask : {
			msg : '正在加载数据，请稍候。。。'
		},
		// 定义分页
		bbar : new Ext.PagingToolbar({
			pageSize : App.pageSize,
			store : ds,
			displayInfo : true,
			displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
			emptyMsg : "没有记录"
		}),
		sm : sm,
		title : "物料准备",
		iconCls : 'icon-grid',
		tbar : ['起始时间:',
				 {
				xtype : "datefield",
				format : 'Y-m-d',
				id : 'keywords1',
				value : new Date()

			}, '-',  "截止时间:",
				{
				xtype : "datefield",
				format : 'Y-m-d',
				value : new Date(),
				id : 'keywords2'

			},{
			text : "条件",
			id : "111"

		}, {
			xtype : "textfield",
			id : 'keywords',
			selectOnFocus : true
		}, {
			text : '查询',
			tooltip : '查询',
			handler : doSearch,
			iconCls : 'search'
		}],
		bodyStyle : 'width:100%',
		//frame : true,
		stripeRows : true,
        width: Ext.get("grid").getWidth(),
        height : Ext.get("grid").getHeight()

	});

	grid.on('rowclick', function(grid, t) {
		if (sm.isSelected(t))
			sm.deselectRow(t);
		else
			sm.selectRow(t, true);
	});
	grid.on('rowdblclick',function(grid, t){
		var record = grid.getStore().getAt(t);
		if(record!=null){
			new App.ShowImg(record);
		}
	})
	grid.render();
	ds.load({
		params : {
			start : 0,
			limit : App.pageSize
		}
	});
	/** 添加
	function doAdd() {
		new App.AddMaterielInfo(ds);
	}* */
	/** 编辑
	function doEdit() {		
		var _record = grid.getSelectionModel().getSelected();
		if (!_record) {
			Ext.MessageBox.alert('警告', '请选择一条信息，进行修改!');
		} else {
			// 修改操作
			new App.EditGoodsinfo(ds,grid);
		}
	}* */
	/** 删除
	function doDel() {
		var rows = grid.getSelectionModel().getSelections();// 返回值为 Record 数组
		if (rows.length == 0) {
			Ext.MessageBox.alert('警告', '最少选择一条信息，进行删除!');
		} else {
			Ext.MessageBox.confirm('提示框', '您确定要进行该操作？', function(btn) {
				if (btn == 'yes') {
					if (rows) {
						for (var i = 0; i < rows.length; i++) {
							// 删除]
							Ext.Ajax.request({
								url : '../' + WebServiceUrl,
								params : {
									trancode : '12134',
									id : rows[i].get('idt_materiel')
								},
								success : function(result) {
									json = Ext.util.JSON
											.decode(result.responseText);
									if (json.success) {
										Ext.MessageBox.alert('操作成功',
												json.message);
										ds.load({
											params : {
												start : 0,
												limit : App.pageSize
											}
										});
									} else {
										Ext.MessageBox.alert('操作失败',
												json.message);
									}
								}
							});
						}
					}
				}

			})
		}
	}* */
	/* 查询函数 */
	function doSearch() {
		var keywords = Ext.get('keywords').dom.value;
		ds.baseParams = {
			keywords : keywords,
			trancode : '33990'
		};
		ds.load({
			params : {
				start : 0,
				limit : App.pageSize
			}
		});
	}
	/*按钮*/
	function renderDescn(value){
		var str="<input type='button' value='详情' onclick= 'alert(\"" +
		"这个单元格的值是:"+ value+"\\n"+
		"\")'>";
		return str;
	}
	//字体颜色
	function renderspellcode(value){
		if (value == '') {
			return "<span style='color:red;font-weight:bold;'>red</span>";
		}else{
		    return "<span style='color:green;font-weight:bold;'>green</span>";
		}
	}
	//注册回车查询事件
	Ext.getCmp('keywords').on('specialkey', doSearch);
})
